# -*- coding: utf-8 -*-
"""
日志配置工具
"""

import logging
import logging.handlers
import os
from config.config import LOG_CONFIG


def setup_logger():
    """设置日志配置"""
    # 创建日志目录
    log_dir = 'logs'
    if not os.path.exists(log_dir):
        os.makedirs(log_dir)
    
    # 日志文件路径
    log_file = os.path.join(log_dir, LOG_CONFIG['file'])
    
    # 配置日志格式
    formatter = logging.Formatter(LOG_CONFIG['format'])
    
    # 获取根日志记录器
    root_logger = logging.getLogger()
    root_logger.setLevel(getattr(logging, LOG_CONFIG['level']))
    
    # 清除已存在的处理器
    for handler in root_logger.handlers[:]:
        root_logger.removeHandler(handler)
    
    # 控制台处理器
    console_handler = logging.StreamHandler()
    console_handler.setLevel(getattr(logging, LOG_CONFIG['level']))
    console_handler.setFormatter(formatter)
    root_logger.addHandler(console_handler)
    
    # 文件处理器（支持文件轮转）
    file_handler = logging.handlers.RotatingFileHandler(
        log_file,
        maxBytes=LOG_CONFIG['max_bytes'],
        backupCount=LOG_CONFIG['backup_count'],
        encoding='utf-8'
    )
    file_handler.setLevel(getattr(logging, LOG_CONFIG['level']))
    file_handler.setFormatter(formatter)
    root_logger.addHandler(file_handler)
    
    # 记录启动信息
    logging.info("日志系统初始化完成")
    logging.info(f"日志级别: {LOG_CONFIG['level']}")
    logging.info(f"日志文件: {log_file}")


def get_logger(name: str):
    """获取指定名称的日志记录器"""
    return logging.getLogger(name)
